home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / gtk-2.0 / gtk / gtktreeview.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-04-25  |  18.1 KB  |  344 lines

  1. /* gtktreeview.h
  2.  * Copyright (C) 2000  Red Hat, Inc.,  Jonathan Blandford <jrb@redhat.com>
  3.  *
  4.  * This library is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU Library General Public
  6.  * License as published by the Free Software Foundation; either
  7.  * version 2 of the License, or (at your option) any later version.
  8.  *
  9.  * This library is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.  * Library General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU Library General Public
  15.  * License along with this library; if not, write to the
  16.  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  17.  * Boston, MA 02111-1307, USA.
  18.  */
  19. #ifndef __GTK_TREE_VIEW_H__
  20. #define __GTK_TREE_VIEW_H__
  21.  
  22. #include <gtk/gtkwidget.h>
  23. #include <gtk/gtkcontainer.h>
  24. #include <gtk/gtktreemodel.h>
  25. #include <gtk/gtktreeviewcolumn.h>
  26. #include <gtk/gtkdnd.h>
  27.  
  28.  
  29. G_BEGIN_DECLS
  30.  
  31.  
  32. typedef enum
  33. {
  34.   /* drop before/after this row */
  35.   GTK_TREE_VIEW_DROP_BEFORE,
  36.   GTK_TREE_VIEW_DROP_AFTER,
  37.   /* drop as a child of this row (with fallback to before or after
  38.    * if into is not possible)
  39.    */
  40.   GTK_TREE_VIEW_DROP_INTO_OR_BEFORE,
  41.   GTK_TREE_VIEW_DROP_INTO_OR_AFTER
  42. } GtkTreeViewDropPosition;
  43.  
  44. #define GTK_TYPE_TREE_VIEW        (gtk_tree_view_get_type ())
  45. #define GTK_TREE_VIEW(obj)        (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TREE_VIEW, GtkTreeView))
  46. #define GTK_TREE_VIEW_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TREE_VIEW, GtkTreeViewClass))
  47. #define GTK_IS_TREE_VIEW(obj)        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TREE_VIEW))
  48. #define GTK_IS_TREE_VIEW_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TREE_VIEW))
  49. #define GTK_TREE_VIEW_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TREE_VIEW, GtkTreeViewClass))
  50.  
  51. typedef struct _GtkTreeView           GtkTreeView;
  52. typedef struct _GtkTreeViewClass      GtkTreeViewClass;
  53. typedef struct _GtkTreeViewPrivate    GtkTreeViewPrivate;
  54. typedef struct _GtkTreeSelection      GtkTreeSelection;
  55. typedef struct _GtkTreeSelectionClass GtkTreeSelectionClass;
  56.  
  57. struct _GtkTreeView
  58. {
  59.   GtkContainer parent;
  60.  
  61.   GtkTreeViewPrivate *priv;
  62. };
  63.  
  64. struct _GtkTreeViewClass
  65. {
  66.   GtkContainerClass parent_class;
  67.  
  68.   void     (* set_scroll_adjustments)     (GtkTreeView       *tree_view,
  69.                            GtkAdjustment     *hadjustment,
  70.                            GtkAdjustment     *vadjustment);
  71.   void     (* row_activated)              (GtkTreeView       *tree_view,
  72.                            GtkTreePath       *path,
  73.                        GtkTreeViewColumn *column);
  74.   gboolean (* test_expand_row)            (GtkTreeView       *tree_view,
  75.                            GtkTreeIter       *iter,
  76.                            GtkTreePath       *path);
  77.   gboolean (* test_collapse_row)          (GtkTreeView       *tree_view,
  78.                            GtkTreeIter       *iter,
  79.                            GtkTreePath       *path);
  80.   void     (* row_expanded)               (GtkTreeView       *tree_view,
  81.                            GtkTreeIter       *iter,
  82.                            GtkTreePath       *path);
  83.   void     (* row_collapsed)              (GtkTreeView       *tree_view,
  84.                            GtkTreeIter       *iter,
  85.                            GtkTreePath       *path);
  86.   void     (* columns_changed)            (GtkTreeView       *tree_view);
  87.   void     (* cursor_changed)             (GtkTreeView       *tree_view);
  88.  
  89.   /* Key Binding signals */
  90.   gboolean (* move_cursor)                (GtkTreeView       *tree_view,
  91.                            GtkMovementStep    step,
  92.                            gint               count);
  93.   gboolean (* select_all)                 (GtkTreeView       *tree_view);
  94.   gboolean (* unselect_all)               (GtkTreeView       *tree_view);
  95.   gboolean (* select_cursor_row)          (GtkTreeView       *tree_view,
  96.                        gboolean           start_editing);
  97.   gboolean (* toggle_cursor_row)          (GtkTreeView       *tree_view);
  98.   gboolean (* expand_collapse_cursor_row) (GtkTreeView       *tree_view,
  99.                        gboolean           logical,
  100.                        gboolean           expand,
  101.                        gboolean           open_all);
  102.   gboolean (* select_cursor_parent)       (GtkTreeView       *tree_view);
  103.   gboolean (* start_interactive_search)   (GtkTreeView       *tree_view);
  104.  
  105.   /* Padding for future expansion */
  106.   void (*_gtk_reserved0) (void);
  107.   void (*_gtk_reserved1) (void);
  108.   void (*_gtk_reserved2) (void);
  109.   void (*_gtk_reserved3) (void);
  110.   void (*_gtk_reserved4) (void);
  111. };
  112.  
  113.  
  114. typedef gboolean (* GtkTreeViewColumnDropFunc) (GtkTreeView             *tree_view,
  115.                         GtkTreeViewColumn       *column,
  116.                         GtkTreeViewColumn       *prev_column,
  117.                         GtkTreeViewColumn       *next_column,
  118.                         gpointer                 data);
  119. typedef void     (* GtkTreeViewMappingFunc)    (GtkTreeView             *tree_view,
  120.                         GtkTreePath             *path,
  121.                         gpointer                 user_data);
  122. typedef gboolean (*GtkTreeViewSearchEqualFunc) (GtkTreeModel            *model,
  123.                         gint                     column,
  124.                         const gchar             *key,
  125.                         GtkTreeIter             *iter,
  126.                         gpointer                 search_data);
  127. typedef gboolean (*GtkTreeViewRowSeparatorFunc) (GtkTreeModel      *model,
  128.                          GtkTreeIter       *iter,
  129.                          gpointer           data);
  130.  
  131.  
  132. /* Creators */
  133. GType                  gtk_tree_view_get_type                      (void) G_GNUC_CONST;
  134. GtkWidget             *gtk_tree_view_new                           (void);
  135. GtkWidget             *gtk_tree_view_new_with_model                (GtkTreeModel              *model);
  136.  
  137. /* Accessors */
  138. GtkTreeModel          *gtk_tree_view_get_model                     (GtkTreeView               *tree_view);
  139. void                   gtk_tree_view_set_model                     (GtkTreeView               *tree_view,
  140.                                     GtkTreeModel              *model);
  141. GtkTreeSelection      *gtk_tree_view_get_selection                 (GtkTreeView               *tree_view);
  142. GtkAdjustment         *gtk_tree_view_get_hadjustment               (GtkTreeView               *tree_view);
  143. void                   gtk_tree_view_set_hadjustment               (GtkTreeView               *tree_view,
  144.                                     GtkAdjustment             *adjustment);
  145. GtkAdjustment         *gtk_tree_view_get_vadjustment               (GtkTreeView               *tree_view);
  146. void                   gtk_tree_view_set_vadjustment               (GtkTreeView               *tree_view,
  147.                                     GtkAdjustment             *adjustment);
  148. gboolean               gtk_tree_view_get_headers_visible           (GtkTreeView               *tree_view);
  149. void                   gtk_tree_view_set_headers_visible           (GtkTreeView               *tree_view,
  150.                                     gboolean                   headers_visible);
  151. void                   gtk_tree_view_columns_autosize              (GtkTreeView               *tree_view);
  152. void                   gtk_tree_view_set_headers_clickable         (GtkTreeView               *tree_view,
  153.                                     gboolean                   setting);
  154. void                   gtk_tree_view_set_rules_hint                (GtkTreeView               *tree_view,
  155.                                     gboolean                   setting);
  156. gboolean               gtk_tree_view_get_rules_hint                (GtkTreeView               *tree_view);
  157.  
  158. /* Column funtions */
  159. gint                   gtk_tree_view_append_column                 (GtkTreeView               *tree_view,
  160.                                     GtkTreeViewColumn         *column);
  161. gint                   gtk_tree_view_remove_column                 (GtkTreeView               *tree_view,
  162.                                     GtkTreeViewColumn         *column);
  163. gint                   gtk_tree_view_insert_column                 (GtkTreeView               *tree_view,
  164.                                     GtkTreeViewColumn         *column,
  165.                                     gint                       position);
  166. gint                   gtk_tree_view_insert_column_with_attributes (GtkTreeView               *tree_view,
  167.                                     gint                       position,
  168.                                     const gchar               *title,
  169.                                     GtkCellRenderer           *cell,
  170.                                     ...) G_GNUC_NULL_TERMINATED;
  171. gint                   gtk_tree_view_insert_column_with_data_func  (GtkTreeView               *tree_view,
  172.                                     gint                       position,
  173.                                     const gchar               *title,
  174.                                     GtkCellRenderer           *cell,
  175.                                                                     GtkTreeCellDataFunc        func,
  176.                                                                     gpointer                   data,
  177.                                                                     GDestroyNotify             dnotify);
  178. GtkTreeViewColumn     *gtk_tree_view_get_column                    (GtkTreeView               *tree_view,
  179.                                     gint                       n);
  180. GList                 *gtk_tree_view_get_columns                   (GtkTreeView               *tree_view);
  181. void                   gtk_tree_view_move_column_after             (GtkTreeView               *tree_view,
  182.                                     GtkTreeViewColumn         *column,
  183.                                     GtkTreeViewColumn         *base_column);
  184. void                   gtk_tree_view_set_expander_column           (GtkTreeView               *tree_view,
  185.                                     GtkTreeViewColumn         *column);
  186. GtkTreeViewColumn     *gtk_tree_view_get_expander_column           (GtkTreeView               *tree_view);
  187. void                   gtk_tree_view_set_column_drag_function      (GtkTreeView               *tree_view,
  188.                                     GtkTreeViewColumnDropFunc  func,
  189.                                     gpointer                   user_data,
  190.                                     GtkDestroyNotify           destroy);
  191.  
  192. /* Actions */
  193. void                   gtk_tree_view_scroll_to_point               (GtkTreeView               *tree_view,
  194.                                     gint                       tree_x,
  195.                                     gint                       tree_y);
  196. void                   gtk_tree_view_scroll_to_cell                (GtkTreeView               *tree_view,
  197.                                     GtkTreePath               *path,
  198.                                     GtkTreeViewColumn         *column,
  199.                                     gboolean                   use_align,
  200.                                     gfloat                     row_align,
  201.                                     gfloat                     col_align);
  202. void                   gtk_tree_view_row_activated                 (GtkTreeView               *tree_view,
  203.                                     GtkTreePath               *path,
  204.                                     GtkTreeViewColumn         *column);
  205. void                   gtk_tree_view_expand_all                    (GtkTreeView               *tree_view);
  206. void                   gtk_tree_view_collapse_all                  (GtkTreeView               *tree_view);
  207. void                   gtk_tree_view_expand_to_path                (GtkTreeView               *tree_view,
  208.                                     GtkTreePath               *path);
  209. gboolean               gtk_tree_view_expand_row                    (GtkTreeView               *tree_view,
  210.                                     GtkTreePath               *path,
  211.                                     gboolean                   open_all);
  212. gboolean               gtk_tree_view_collapse_row                  (GtkTreeView               *tree_view,
  213.                                     GtkTreePath               *path);
  214. void                   gtk_tree_view_map_expanded_rows             (GtkTreeView               *tree_view,
  215.                                     GtkTreeViewMappingFunc     func,
  216.                                     gpointer                   data);
  217. gboolean               gtk_tree_view_row_expanded                  (GtkTreeView               *tree_view,
  218.                                     GtkTreePath               *path);
  219. void                   gtk_tree_view_set_reorderable               (GtkTreeView               *tree_view,
  220.                                     gboolean                   reorderable);
  221. gboolean               gtk_tree_view_get_reorderable               (GtkTreeView               *tree_view);
  222. void                   gtk_tree_view_set_cursor                    (GtkTreeView               *tree_view,
  223.                                     GtkTreePath               *path,
  224.                                     GtkTreeViewColumn         *focus_column,
  225.                                     gboolean                   start_editing);
  226. void                   gtk_tree_view_set_cursor_on_cell            (GtkTreeView               *tree_view,
  227.                                     GtkTreePath               *path,
  228.                                     GtkTreeViewColumn         *focus_column,
  229.                                     GtkCellRenderer           *focus_cell,
  230.                                     gboolean                   start_editing);
  231. void                   gtk_tree_view_get_cursor                    (GtkTreeView               *tree_view,
  232.                                     GtkTreePath              **path,
  233.                                     GtkTreeViewColumn        **focus_column);
  234.  
  235.  
  236. /* Layout information */
  237. GdkWindow             *gtk_tree_view_get_bin_window                (GtkTreeView               *tree_view);
  238. gboolean               gtk_tree_view_get_path_at_pos               (GtkTreeView               *tree_view,
  239.                                     gint                       x,
  240.                                     gint                       y,
  241.                                     GtkTreePath              **path,
  242.                                     GtkTreeViewColumn        **column,
  243.                                     gint                      *cell_x,
  244.                                     gint                      *cell_y);
  245. void                   gtk_tree_view_get_cell_area                 (GtkTreeView               *tree_view,
  246.                                     GtkTreePath               *path,
  247.                                     GtkTreeViewColumn         *column,
  248.                                     GdkRectangle              *rect);
  249. void                   gtk_tree_view_get_background_area           (GtkTreeView               *tree_view,
  250.                                     GtkTreePath               *path,
  251.                                     GtkTreeViewColumn         *column,
  252.                                     GdkRectangle              *rect);
  253. void                   gtk_tree_view_get_visible_rect              (GtkTreeView               *tree_view,
  254.                                     GdkRectangle              *visible_rect);
  255. void                   gtk_tree_view_widget_to_tree_coords         (GtkTreeView               *tree_view,
  256.                                     gint                       wx,
  257.                                     gint                       wy,
  258.                                     gint                      *tx,
  259.                                     gint                      *ty);
  260. void                   gtk_tree_view_tree_to_widget_coords         (GtkTreeView               *tree_view,
  261.                                     gint                       tx,
  262.                                     gint                       ty,
  263.                                     gint                      *wx,
  264.                                     gint                      *wy);
  265. gboolean               gtk_tree_view_get_visible_range             (GtkTreeView               *tree_view,
  266.                                     GtkTreePath              **start_path,
  267.                                     GtkTreePath              **end_path);
  268.  
  269. /* Drag-and-Drop support */
  270. void                   gtk_tree_view_enable_model_drag_source      (GtkTreeView               *tree_view,
  271.                                     GdkModifierType            start_button_mask,
  272.                                     const GtkTargetEntry      *targets,
  273.                                     gint                       n_targets,
  274.                                     GdkDragAction              actions);
  275. void                   gtk_tree_view_enable_model_drag_dest        (GtkTreeView               *tree_view,
  276.                                     const GtkTargetEntry      *targets,
  277.                                     gint                       n_targets,
  278.                                     GdkDragAction              actions);
  279. void                   gtk_tree_view_unset_rows_drag_source        (GtkTreeView               *tree_view);
  280. void                   gtk_tree_view_unset_rows_drag_dest          (GtkTreeView               *tree_view);
  281.  
  282.  
  283. /* These are useful to implement your own custom stuff. */
  284. void                   gtk_tree_view_set_drag_dest_row             (GtkTreeView               *tree_view,
  285.                                     GtkTreePath               *path,
  286.                                     GtkTreeViewDropPosition    pos);
  287. void                   gtk_tree_view_get_drag_dest_row             (GtkTreeView               *tree_view,
  288.                                     GtkTreePath              **path,
  289.                                     GtkTreeViewDropPosition   *pos);
  290. gboolean               gtk_tree_view_get_dest_row_at_pos           (GtkTreeView               *tree_view,
  291.                                     gint                       drag_x,
  292.                                     gint                       drag_y,
  293.                                     GtkTreePath              **path,
  294.                                     GtkTreeViewDropPosition   *pos);
  295. GdkPixmap             *gtk_tree_view_create_row_drag_icon          (GtkTreeView               *tree_view,
  296.                                     GtkTreePath               *path);
  297.  
  298. /* Interactive search */
  299. void                       gtk_tree_view_set_enable_search     (GtkTreeView                *tree_view,
  300.                                 gboolean                    enable_search);
  301. gboolean                   gtk_tree_view_get_enable_search     (GtkTreeView                *tree_view);
  302. gint                       gtk_tree_view_get_search_column     (GtkTreeView                *tree_view);
  303. void                       gtk_tree_view_set_search_column     (GtkTreeView                *tree_view,
  304.                                 gint                        column);
  305. GtkTreeViewSearchEqualFunc gtk_tree_view_get_search_equal_func (GtkTreeView                *tree_view);
  306. void                       gtk_tree_view_set_search_equal_func (GtkTreeView                *tree_view,
  307.                                 GtkTreeViewSearchEqualFunc  search_equal_func,
  308.                                 gpointer                    search_user_data,
  309.                                 GtkDestroyNotify            search_destroy);
  310.  
  311. /* This function should really never be used.  It is just for use by ATK.
  312.  */
  313. typedef void (* GtkTreeDestroyCountFunc)  (GtkTreeView             *tree_view,
  314.                        GtkTreePath             *path,
  315.                        gint                     children,
  316.                        gpointer                 user_data);
  317. void gtk_tree_view_set_destroy_count_func (GtkTreeView             *tree_view,
  318.                        GtkTreeDestroyCountFunc  func,
  319.                        gpointer                 data,
  320.                        GtkDestroyNotify         destroy);
  321.  
  322. void     gtk_tree_view_set_fixed_height_mode (GtkTreeView          *tree_view,
  323.                           gboolean              enable);
  324. gboolean gtk_tree_view_get_fixed_height_mode (GtkTreeView          *tree_view);
  325. void     gtk_tree_view_set_hover_selection   (GtkTreeView          *tree_view,
  326.                           gboolean              hover);
  327. gboolean gtk_tree_view_get_hover_selection   (GtkTreeView          *tree_view);
  328. void     gtk_tree_view_set_hover_expand      (GtkTreeView          *tree_view,
  329.                           gboolean              expand);
  330. gboolean gtk_tree_view_get_hover_expand      (GtkTreeView          *tree_view);
  331.  
  332. GtkTreeViewRowSeparatorFunc gtk_tree_view_get_row_separator_func (GtkTreeView               *tree_view);
  333. void                        gtk_tree_view_set_row_separator_func (GtkTreeView                *tree_view,
  334.                                   GtkTreeViewRowSeparatorFunc func,
  335.                                   gpointer                    data,
  336.                                   GtkDestroyNotify            destroy);
  337.  
  338.  
  339. G_END_DECLS
  340.  
  341.  
  342. #endif /* __GTK_TREE_VIEW_H__ */
  343.  
  344.